package com.zjsru.plan2025.oneday;

/**
 * 2221. 数组的三角和
 *
 * @Author: cookLee
 * @Date: 2025-09-30
 */
public class TriangularSum {

    /**
     * nums 初始包含 n 个元素。如果 n == 1 ，终止 操作。否则，创建 一个新的下标从 0 开始的长度为 n - 1 的整数数组 newNums 。
     * 对于满足 0 <= i < n - 1 的下标 i ，newNums[i] 赋值 为 (nums[i] + nums[i+1]) % 10 ，% 表示取余运算。
     * 将 newNums 替换 数组 nums 。
     * 从步骤 1 开始 重复 整个过程。
     * //
     * 输入：nums = [1,2,3,4,5]
     * 输出：8
     * 解释：
     * 上图展示了得到数组三角和的过程。
     *
     * @param args
     */
    public static void main(String[] args) {
        TriangularSum triangularSum = new TriangularSum();
        int[] nums = new int[]{1, 2, 3, 4, 5};
        System.out.println(triangularSum.triangularSum(nums));
    }

    public int triangularSum(int[] nums) {
        return this.dfs(nums);
    }

    private int dfs(int[] nums) {
        if (nums.length == 1) {
            return nums[0];
        }
        int[] newNums = new int[nums.length - 1];
        for (int i = 0; i < nums.length - 1; i++) {
            newNums[i] = (nums[i] + nums[i + 1]) % 10;
        }
        return this.dfs(newNums);
    }

}
